package hot100.双指针.单行到底;

/**移动零
/**
 * 给定一个数组 nums，将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。
 * 输入: nums = [0,1,0,3,12]
 * 输出: [1,3,12,0,0]
 *
 * 把非零的一个一个拿前面去 再把后面归零
 *
 */
public class MoveZeroBottom283 {

    public int[] method(int[] nums){
        int head = 0;

        for(int i=0;i<nums.length;i++){
            //找非零数
            if (nums[i]==0) continue;
            nums[head] = nums[i];
            head++;
        }

        int tail = nums.length;
        for(int i=head;i<tail;i++){
            nums[i]=0;
        }

        return nums;
    }

    public static void main(String[] args) {
        MoveZeroBottom283 zb = new MoveZeroBottom283();
        int[] nums = new int[]{0,1,0,3,12};
        zb.method(nums);
        for (int num : nums) {
            System.out.print(num + " ");
        }
    }
}